home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / Docs / Dons-Class-App-Lib < prev    next >
Text File  |  1996-07-05  |  3KB  |  123 lines

  1. don's class application library: d clap lib
  2.  
  3. putting NCBI Tools & NCBI Vibrant -- cross-platform toolkit -- 
  4. into a C++ class application library, roughly patterned on MacApp, Think CL, ...
  5.  
  6. Vibrant notes:
  7.     see vibwndws.c for main(), Nlm_ProcessEvents()
  8.         -- mac & mswin break anyevent into event classes: mouse, key, command(?),...
  9.         -- xwin anyevent breakdown NOT FOUND!?
  10.     see vibutils.c for Nlm_DoClick(), Nlm_DoCommand() == task kind handlers, specific to each win system!
  11.         -- mac:   DoClick(), DoKey(), DoDraw()==update, DoIdle()
  12.         -- mswin: DoCommand()
  13.         -- xwin:  DoCallback()
  14.         
  15.     change vibrant, to map from static proc callbacks to object handlers:
  16. vibincld.h:
  17.     typedef  struct  Nlm_graphicrec {
  18.   Nlm_GraphiC   next;
  19.   Nlm_GraphiC   parent;
  20.   Nlm_GraphiC   children;
  21.   Nlm_GraphiC   lastChild;
  22.   Nlm_GphPrcs   PNTR classptr;
  23.   Nlm_ActnProc  action;
  24.   Nlm_RecT      rect;
  25.   Nlm_Boolean   enabled;
  26.   Nlm_Boolean   visible;
  27. #ifndef NOCLAP
  28.     Nlm_VoidPtr     thisobject; /* <<<add to hold DObjectPtr */
  29. #endif
  30. } Nlm_GraphicRec, Nlm_GraphicData, PNTR Nlm_GphPtr;
  31.  
  32.  
  33. vibprocs.h:
  34. #ifndef NOCLAP
  35. void Nlm_SetObject PROTO((Nlm_GraphiC a, Nlm_VoidPtr thisobject));
  36. Nlm_VoidPtr Nlm_GetObject PROTO((Nlm_GraphiC a));
  37. #endif
  38.  
  39. vibutils.c:
  40. #ifndef NOCLAP
  41. extern void Nlm_SetObject (Nlm_GraphiC a, Nlm_VoidPtr thisobject)
  42. {
  43.   Nlm_GraphicData  gdata;
  44.   if (a != NULL && thisobject != NULL) {
  45.     Nlm_GetGraphicData (a, &gdata);
  46.     gdata.thisobject = thisobject;
  47.     Nlm_SetGraphicData (a, &gdata);
  48.       }
  49. }
  50.  
  51. extern Nlm_VoidPtr Nlm_GetObject (Nlm_GraphiC a)
  52. {
  53.   Nlm_GraphicData  gdata;
  54.   if (a != NULL) {
  55.     Nlm_GetGraphicData (a, &gdata);
  56.     return gdata.thisobject;
  57.       }
  58.     else return NULL;
  59. }
  60. #endif
  61.  
  62.  
  63. Note: Think C v6. compiler, must set #define USE_MAC_MEMORY 1 in the
  64.         C compiler header, in order to bypass suspect compiler/lib mem. 
  65.             bug (realloc() fails after a few calls !)
  66.  
  67.  
  68.  
  69. DObject
  70.     DArray    == TDynamicArray
  71.         DSortedArray
  72.             DSortedList
  73.                 DList    == TList
  74.     DArrayCounter    == TArrayIterator
  75.     
  76.     DTask == TEvent, TCommand, ...
  77.         DKeyTask    from Nlm_KeyboardView ???
  78.         DRepeatTask    from Nlm_Metronome
  79.         DPrintTask == TPrintHandler ???
  80.  
  81.     DMenuChoiceGroup
  82.     
  83.     DCommandCentral
  84.         
  85.     DTaskMaster    == TEventHandler,TCommandHandler...include Nlm_ProcessEvents
  86.         DApplication 
  87.         
  88.         DDocument??/ DContainer??
  89.         
  90.         DView 
  91.         
  92.             DMenu    from Nlm_Menu.. procs
  93.                 DPulldownMenu    
  94.                 DAppleMenu
  95.                 DSubMenu
  96.                 DPopupMenu
  97.             DPopupList
  98.                 
  99.             DWindow from Nlm_Window... procs
  100.             DControl
  101.                 DGroup    from Nlm_Group... procs
  102.                     DViewList    from Nlm_List... procs
  103.                 DButton from Nlm_Button... procs, incl radio, check, push types
  104.                     DRadioButton
  105.                     DCheckBox
  106.                     DIconButton from Nlm_IconButton
  107.                     DRepeatButton from Nlm_RepeatButton
  108.                 DScrollBar    from Nlm_ScrollBar...
  109.                     DSwitch    from Nlm_UpDownSwitch ...
  110.                 DText
  111.                     DEditText from Nlm_DialogText 
  112.                     DStaticText from Nlm_StaticPrompt
  113.                     DScrollText from Nlm_ScrollText
  114.         
  115.             DPanel    ?? from Nlm_Panel...        
  116.             DSlate    ?? from Nlm_Slate
  117.         
  118.     DStream
  119.         DFileStream
  120.         DMemoryStream
  121.         DTCPStream
  122.         
  123.     DPreferences    ?? / settings/ userprefs/ ?? from DStream